Traditionally, software that is destined for running on client devices has a lengthy release cycle. This release cycle can require days, weeks, or a number of months, to pass between major releases of the software. Thus giving developers time to fully test additional features and components in the software. However, this lengthy release cycle inhibits rapid deployment of features that do not require such extensive testing. Publishing incremental versions of the software between the major releases can be costly for the publisher and frustrating for users who might be bothered by repeated requests to update the software. What is needed is a technique for updating portions of the software without requiring a full update to the software.